<!DOCTYPE HTML>
<html>
<head>
<title>Boomerang 使用方法 #5: リクエストとページにタグをつける</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../boomerang-docs.css">
</head>
<body>
<span style="float:right;"><a href="../">ドキュメント一覧</a> | <a href="index.html">使用方法一覧</a></span>
<h1>Boomerang 使用方法 #5: リクエストとページにタグをつける</h1>
<p>
この要件の説明は <a href="../use-cases.html#uc-5">ユースケース #5</a> をご覧ください。
</p>
<p>
サーバーに送ったビーコンに多くの情報を追加しなければならない場合はたびたびあると思います。例えば、<code>page_id</code> と一緒にビーコンにタグをつけたり、A/B テストを行ったり、ビーコンのためにバケットを指定するパラメーターと一緒にビーコンにタグをつけたりしたいかもしれません。これらを <code>BOOMR.addVar()</code> メソッドを使って実現することができます。
</p>

<p>
このメソッドを使う前に、それぞれのプラグインは自身のパラメーターを追加すること、これらをあなた自身で上書きする必要がないことを覚えておいてください。boomerang にビルトインされているプラグインが設定するパラメーターの一覧は <a href="howto-0.html">使用方法 #0</a> をご覧ください。その他のプラグインは自身のパラメーターを追加するかもしれません。その場合はプラグインのドキュメントを参考にしてください。
</p>

<pre>
BOOMR.addVar("page_id", 123);
</pre>

<p>
パラメーターの名前は文字列でなければなりません。英数字とアンダースコアのみを使用することを推奨しますが、好きなものを使ってかまいません。パラメーターの値は数値か文字列になりますので、URL の中に置き換えることができます。
</p>

<p>
もし複数のパラメーターが必要なら、代わりにオブジェクトを使って渡します:
</p>

<pre>
BOOMR.addVar({
		"bucket": "test#1",
		"page_id": 123
	});
</pre>

<p>
<code>BOOMR.addVar()</code> を呼び出す前に boomerang.js が読み込まれているか確認してください。
</p>

<h2>ビーコン</h2>
<p>
ビーコンは URL の中に追加した値を全て含めます。キーと値はともに URL エンコードされます。バックエンドのアプリケーションはパラメーターが渡されることを知っておく必要があります。
</p>

<pre>
http://yoursite.com/path/to/beacon.php?<em>bucket=test%231</em>&amp;<em>page_id=123</em>&amp;t_done=.....
</pre>

<h2>値を削除する</h2>
<p>
あなたが追加した（またはプラグインが追加した）パラメーターをビーコンから削除することもできます。これを行うには <code>BOOMR.removeVar()</code> メソッドを呼び出します。このメソッドは名前のリストを取り、パラメーターのリストから全てを削除します。パラメーターのリストにない名前は無視されます。
</p>

<pre>
<span class="comment">// don't send the stooges to the server   </span>
BOOMR.removeVar("larry", "moe", "curly");
</pre>

<h2>ビーコンを停止する</h2>
<p>
ビーコンの発生を止める大ざっぱな方法もあります。<code>before_beacon</code> イベントハンドラーの中で、全てのパラメーターを単純に削除します。
</p>

<pre>
BOOMR.subscribe('before_beacon', function(o) {
	var p_names = [], k;

	if( "t_done" in o ) {
		return;
	}

	<span class="comment">// t_done is not set, so don't beacon         </span>
	for(k in o) {
		if(o.hasOwnProperty(k)) {
			p_names.push(k);
		}
	}

	<span class="comment">// removeVar accepts either a list or an array</span>
	BOOMR.removeVar(p_names);
});
</pre>

<p class="perma-link">
最新のソースコードとドキュメントは <a href="http://github.com/lognormal/boomerang/">github.com/lognormal/boomerang</a> に公開されています。
</p>

<p id="results">
</p>
<script src="../../../boomerang.js" type="text/javascript"></script>
<script src="../../howtos/howtos.js" type="text/javascript"></script>
<script type="text/javascript">
BOOMR.init({
		user_ip: '10.0.0.1',
		BW: {
			base_url: '../../images/',
			cookie: 'HOWTO-BA'
		},
		RT: {
			cookie: 'HOWTO-RT'
		}
	}).
	addVar({
		"author": "bluesmoon",
		"page_id": "howto-5"
	});
</script>
</body>
</html>
